<?php
/**
 * 分类模型
 * @author 杨帆 
 */
class ClassModel extends Model{
    //操作表名称
    public $table = 'class';
    
//  public $auto = array();
    //表字段的规则自动匹配
    public $validate = array(
        array('name','nonull','分类名称不能为空',2,3),
    );
    
    /**
     *添加分类 
     */
    public function addData(){
        //如果不符合$validata的规则,则返回false,注意"!";
        if(!$this->create()) return false;
        //添加数据
        return $this->add(); 
    }
    
    /**
     * 编辑分类
     */
    public function editData($cid){
        //如果不符合$validata的规则,则返回false,注意"!";
        if(!$this->create()) return false;
        return $this->where("cid={$cid}")->update();
    }
    
    /**
     * 组成包括父级子集的所有子集循环，返给html；
     */
     public function sonCids($cid){
        //获得所有数据
        $data = $this->all();
//      p($data);die;
        //获得所有的子集
        $cids = $this->getSon($data, $cid);
        
        //把自己压入;
        $cids[] = $cid;
//      p($cids);die;
        return $cids;
    }
    
    /**
     * 获得对应cid的子集,递归
     */
    private function getSon($data,$cid){
        //建立一个空数组
        $temp = array();
        //循环$data
        foreach ($data as $v) {
            //如果$data的fid字段等于$cid,即查询当前分类下的所有子集;
            if($v['fid'] == $cid){
                //将自己子集压入空数组;
                $temp[] = $v['cid'];
                //利用数组合并函数,进行递归;
                $temp = array_merge($temp,$this->getSon($data, $v['cid']));
            }
        }
//      p($temp);die;
        return $temp;
    }
    
    
    
    
    
    
    
    
 }
 
 
 
 
 
 
 
 
 
 
 
